package com.version1.diabeco;


import java.util.ArrayList;
import java.util.Calendar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class ActivityComidaNueva extends Activity {
	//Elementos de la Pantalla
	private Spinner spinnerCuando;
	private Button btnFecha, btnHora;
	private Calendar objCalendario;
	private AutoCompleteTextView autoCompleteComida;
	private ArrayList<ComidasFila> objListaComidas;
	private ListView listViewComidas;
	private TextView ValorHdc;
	
	//Fila del listview
//	SeekBar barraHdc;
//	TextView carbono, carbonoa;
	//Varios
	public int[] intArray;
	public int index = -1;
	public int indexsel = 0;
	public int TotalHdc = 0;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_comida_nueva);
		
		// Obtengo la referencia de los elementos de la pantalla

		autoCompleteComida = (AutoCompleteTextView) findViewById(R.id.autoCompleteComida);
		ValorHdc = (TextView) findViewById(R.id.TextViewValorHdc);
		setAutocompleteComida();
		
		objListaComidas = new ArrayList<ComidasFila>();
		listViewComidas = (ListView) findViewById(R.id.listViewComidas);
		intArray = new int[10];
		

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_comida_nueva, menu);
		return true;
	}

	
	public void setAutocompleteComida() {
		
		// Obtenego el Array de Comidas
		String[] strComidas = getResources().getStringArray(R.array.ac_comida);
		
		// Creo el adaptador y lo seteo al  AutoCompleteTextView 
		ArrayAdapter<String> adapter = 
//		        new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strComidas);
		new ArrayAdapter<String>(this, R.layout.autocomplete_dropdown_item, strComidas);
		
		
		//Muestro la lista
		autoCompleteComida.setAdapter(adapter);
	}

	
	/** Se llama al hacer click en "Agregar Comida" */
	public void ClickAgregarComida(View view) {
		int hdecarbono = 0;
		String textAlimento; 
		String intHdecarbono, intHdecarbonoAjustado; 
		
		if (autoCompleteComida.getText().toString().equals("Milanesa")) {
			hdecarbono = 100;
		}
		
		if (autoCompleteComida.getText().toString().equals("Bondiola")) {
			hdecarbono = 200;
		}

		if (autoCompleteComida.getText().toString().equals("Arroz")) {
			hdecarbono = 300;
		}
						
				//Agregamos las entradas al array
				textAlimento = autoCompleteComida.getText().toString();
				index++;
				
				//Creamos el ArrayList que va contener las filas tipo AjustesFila
				objListaComidas.add(new ComidasFila(textAlimento, hdecarbono, hdecarbono, 100));
				
				/**Codigo para usar el Adaptador **/
				listViewComidas.setAdapter(new ListAdapter(this, R.layout.activity_comida_fila, objListaComidas){				
		    	
					@Override
					public void onEntrada(Object entrada, View view) {
						int hdc, hdca = 0;
			
				        if (entrada != null) {
				            TextView alimento = (TextView) view.findViewById(R.id.textViewComida); 
				            if (alimento != null) 
				            	alimento.setText(((ComidasFila) entrada).get_comida()); 

				            final TextView carbono = (TextView) view.findViewById(R.id.textView2); 
				            if (carbono != null) {
				            	hdc = ((ComidasFila) entrada).get_carbono();
				            	carbono.setText(new StringBuilder().append(hdc)); 
				            }
				            
				            final TextView carbonoa = (TextView) view.findViewById(R.id.textView4); 
				            if (carbonoa != null) {
				            	hdca = ((ComidasFila) entrada).get_carbonoa();
				            	TotalHdc = TotalHdc + hdca; 
				            	carbonoa.setText(new StringBuilder().append(hdca));
				            	ValorHdc.setText(new StringBuilder().append(TotalHdc));
				            }
				            
				            SeekBar barraHdc = (SeekBar) view.findViewById(R.id.seekBar1); 
				            if (barraHdc != null) {
				            	intArray[index] = barraHdc.getId();
				            	barraHdc.setProgress(((ComidasFila) entrada).get_progreso());
				            	barraHdc.setTag(index);
//				            	barraHdc.setClickable(false);
//				            	barraHdc.setFocusable(false);
//				            	barraHdc.setEnabled(false);

				            	barraHdc.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

							        public void onStopTrackingTouch(SeekBar seekBar) {
								        int indice = 0;
								        int id, id_aux = 0;
							        	int progress = seekBar.getProgress();
							        	id = seekBar.getId();
							        	
////							        	TODO - Setear el valor del progreso y de los hdca en el objeto
//								        for (indice = 0; indice < 10; indice++) {
//								        	id_aux = intArray[indice];
//											if ( id == id_aux) {
//												break;
//											}
//										}
								        
//								        objListaComidas.get(indice).set_progreso(progress);
//								        objListaComidas.get(indice).set_carbonoa(Integer.valueOf(carbonoa.getText().toString()));
								        Toast.makeText(ActivityComidaNueva.this, "Index barra: " + (Integer)seekBar.getTag(), Toast.LENGTH_SHORT).show();
							        }

							        
							        public void onStartTrackingTouch(SeekBar seekBar) {
							        // empty as onStartTrackingTouch listener not being used in
							        // current implementation
							        }

							        
							        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
							        	int  hdc, hdca = 0;
							        	
							        	hdc = Integer.valueOf(carbono.getText().toString());
							        	hdca = (hdc * progress) / 100;
							            carbonoa.setText(new StringBuilder().append(hdca));
							        }
							    });
				            
				            }
				        }
					}
				});

				
//				listViewComidas.setOnItemClickListener(new OnItemClickListener() {
//					public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
////						barraHdc.setFocusable(true);
////  					    barraHdc.setEnabled(true);
//  					    indexsel = position;
//						Toast.makeText(ActivityComidaNueva.this, "Posicion: " + indexsel, Toast.LENGTH_SHORT).show();
//		            	
//		    
//					}
//				});
    }
	
	
	
	/** Se llama al hacer click en "Guardar" */
	public void sendMsgComidaNuevaBtnGuardar(View view) {
		
//		//Obtenemos el valor seleccionado del Spinner Medicamento
//		String strMedicamento = null, 
//			   strAplicacion  = null;
//
//		Cursor cc = (Cursor)(spinnerMedicamentos.getSelectedItem());
//		
//		if (cc != null) {
//			strMedicamento = cc.getString(cc.getColumnIndex("descripcion"));
//			//Solo cargamos la aplicacion si es Insulina
//			if (ActivityMain.TIPO_INSULINA.equals(cc.getString(cc.getColumnIndex("_id")))) {
//				strAplicacion = spinnerAplicacion.getSelectedItem().toString();
//			} else {
//				strAplicacion = null;
//			}
//		}
//		
//		//Abrimos base de datos
//		 dbDiabeco = new BaseDeDatos(this, BaseDeDatos.DATABASE_NAME, null, 1);
//		 db = dbDiabeco.getWritableDatabase();
//
////		 //Agregamos los segundos al campo Hora
////		   strHora        = null;
////		   CharSequence t;
////		 strHora = btnHora.getText().toString();
////		 t = new StringBuilder().append(":")
////				   .append(intSegundos);
////		 strHora.concat(t.toString());
//		 
//		//Cargamos los valores
//		ContentValues nuevo_registro = new ContentValues();
//		nuevo_registro.put("alias", "Palma");
//		nuevo_registro.put("fecha", btnFecha.getText().toString());
//		if (intCreando == 1) {
//			nuevo_registro.put("hora", btnHora.getText().toString());		
//		} else {
//			
//		}
//
//		nuevo_registro.put("desc_medicamento", strMedicamento);
//		nuevo_registro.put("dosis", spinnerDosis.getSelectedItem().toString());
//		nuevo_registro.put("lugar_aplicacion", strAplicacion);
//		nuevo_registro.put("um_dosis", "UN");
//		
//		//Si el registro ya existe lo actualizamos
//		if (db.insert("medicacion", null, nuevo_registro) < 0) {
//			db.update("medicacion", nuevo_registro, "alias='Palma' AND " + 
//													"fecha='"+btnFecha.getText().toString()+"'" +
//													" AND hora='"+btnHora.getText().toString()+"'", null);
//		} 
//
//		//Cerramos Base de Datos
//		 dbDiabeco.close();
//		
	    //Salimos
		Toast.makeText(this, "Comida Guardada", Toast.LENGTH_SHORT).show();
		this.finish();
	}
	
	
	/** Se llama al hacer click en "Cancelar" */
	public void sendMsgComidaNuevaBtnCancelar(View view) {
		Toast.makeText(this, "Operacion Cancelada", Toast.LENGTH_SHORT).show();
		this.finish();
	}
		
}
